/*
 * File:   BlackBoxTestsToRotatedImages.h
 * Author: Guilherme Monteiro
 *
 */

#ifndef BLACKBOXTESTSTOROTATEDIMAGES_H
#define	BLACKBOXTESTSTOROTATEDIMAGES_H

#include <cppunit/extensions/HelperMacros.h>

#include <cstdio>
#include <cxcore.h>
#include <cv.h>
#include <cerrno>
#include <highgui.h>
#include <string.h>
#include <exception>

#include "BlackBoxTestsTableTranscriber.h"
#include "../headers/TableTranscriber.h"
#include "../headers/GenericModel.h"
#include "../headers/VerticalTableHandler.h"
#include "../headers/ModelListHandler.h"
#include "../headers/NullImageException.h"

using namespace std;

class BlackBoxTestsToRotatedImages : public CPPUNIT_NS::TestFixture {
    CPPUNIT_TEST_SUITE(BlackBoxTestsToRotatedImages);

    CPPUNIT_TEST(caseTestUsingModel1Img1Rotated90Degrees);
    CPPUNIT_TEST(caseTestUsingModel2Img1Rotated90Degrees);
    CPPUNIT_TEST(caseTestUsingModel1Img2Rotated90Degrees);
    CPPUNIT_TEST(caseTestUsingModel2Img2Rotated90Degrees);
    CPPUNIT_TEST(caseTestUsingBothModelsRotated90Degrees);
    CPPUNIT_TEST(caseTestUsingMultiplesRotated90DegreesTablesIntoOnePage);
    
    CPPUNIT_TEST_SUITE_END();

public:
    BlackBoxTestsToRotatedImages();
    virtual ~BlackBoxTestsToRotatedImages();
    void setUp();
    void tearDown();

private:
    void caseTestUsingModel1Img1Rotated90Degrees();
    void caseTestUsingModel2Img1Rotated90Degrees();
    void caseTestUsingModel1Img2Rotated90Degrees();
    void caseTestUsingModel2Img2Rotated90Degrees();
    void caseTestUsingBothModelsRotated90Degrees();
    void caseTestUsingMultiplesRotated90DegreesTablesIntoOnePage();
};

#endif	/* BLACKBOXTESTSTOROTATEDIMAGES_H */

